package com.xzy.mybatis.mapper;

import com.xzy.mybatis.entity.Student;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 文件描述
 *
 * @ProductName: Hundsun HEP
 * @ProjectName: mybatis
 * @Package: com.xzy.mybatis.mapper
 * @Description: note
 * @Author: xiaozy37528
 * @CreateDate: 2021/4/19 19:19
 * @UpdateUser: xiaozy37528
 * @UpdateDate: 2021/4/19 19:19
 * @UpdateRemark: The modified content
 * @Version: 1.0
 * <p>
 * Copyright © 2021 Hundsun Technologies Inc. All Rights Reserved
 **/
public interface StudentMapper {

    /**
     * 新增
     *
     * @param student -
     */
    void insert(Student student);

    /**
     * 编辑
     *
     * @param student -
     */
    void update(Student student);

    /**
     * 删除
     *
     * @param studentId -
     */
    void deleteById(Integer studentId);

    /**
     * 根据ID查询
     *
     * @param studentId -
     * @return -
     */
    Student findById(Integer studentId);

    /**
     * 根据姓名模糊查询
     *
     * @param studentName -
     * @return -
     */
    List<Student> findAllByName(String studentName);

    /**
     * 数量统计
     *
     * @param studentName - 学生姓名
     * @return -
     */
    Integer countByName(String studentName);

    /**
     * 传递多个参数
     *
     * @param params -
     * @return -
     */
    List<Student> findAllByNameAndBirthday1(Map<String, Object> params);

    /**
     * 传递多个参数
     *
     * @param studentName -
     * @param birthday    -
     * @return -
     */
    List<Student> findAllByNameAndBirthday2(@Param("studentName") String studentName, @Param("birthday") Date birthday);

    /**
     * 查询学生信息（包含学生卡信息）
     *
     * @param studentId -
     * @return -
     */
    Student findByStudentIdWithCardInfo(Integer studentId);

}
